package com.xd.cloud.service.vehicle;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.xd.cloud.common.sql.TrackReplayData;
import com.xd.cloud.common.util.GeographyPosition;
import com.xd.cloud.dao.vehicle.GpsDataDao;
import com.xd.cloud.entity.vehicle.GpsDataPo;

/**   
 * 功能描述：实时定位数据Service
 * @author: wangshanshan   
 * @date: 2017年12月19日 下午4:45:52 
 */
@Service
public class GpsDataService {

    @Autowired
    private GpsDataDao gpsDataDao;
    
	public List<GpsDataPo> getGpsDataRuntime(String deviceId) {
		List<Object[]> list = gpsDataDao.getGpsDataRuntime(deviceId);
		List<GpsDataPo> retuList = new ArrayList<GpsDataPo>();
		if(list!=null && list.size()>0) {
			for (Object[] item:list){
				GpsDataPo temp = new GpsDataPo();
				temp.setVehid((String)item[0]);
				temp.setDevice_id((String)item[1]);
				temp.setLng(((BigDecimal)item[2]).doubleValue());
				temp.setLat(((BigDecimal)item[3]).doubleValue());
				temp.setSpeed((Float)item[4]);
				temp.setDirection((Double)item[5]);
				temp.setAcc((Integer)item[6]);
				temp.setMileage((Double)item[7]);
				temp.setOl((Double)item[8]);
				temp.setStatus((String)item[9]);
				temp.setCsq((Integer)item[10]);
				temp.setGpstime_str((String)item[11]);
				temp.setLocation(GeographyPosition.getPositionName(String.valueOf(temp.getLng()),String.valueOf(temp.getLat())));
				retuList.add(temp);
			}
			
		}
		return retuList;
	}
	
	public List<GpsDataPo> getTrackReplayData(String deviceId, String startTime, String endTime) {
		List<GpsDataPo> list = TrackReplayData.queryTrackReplayData(deviceId, startTime, endTime);
		List<GpsDataPo> retuList = new ArrayList<GpsDataPo>();
		if(list!=null && list.size()>0) {
			for(GpsDataPo item : list) {
				item.setLocation(GeographyPosition.getPositionName(String.valueOf(item.getLng()),String.valueOf(item.getLat())));
				retuList.add(item);
			}
		}
		return retuList;
	}
}
